<?php
class AlipayAction extends BaseAction{

	function _initialize(){
		header('Content-Type:text/html; charset=utf-8');//页面编码设置为UTF-8
	}
	//本例只是个测试页面
	public function refundAlipay(){
		$testArr=array(
				array(
					'0'=>'2013010500001000590027525650',
					'1'=>'0.10',
					'2'=>'退款'
				)
		);
		$test=refundAlipayApi($testArr);
		echo $test;//输出支付宝返回信息页面
	}
	//异步结果返回页面
	public function notify_url(){
		$root=dirname(dirname(dirname(__FILE__)));
		require_once($root."/Api/alipay.config.php");
		require_once($root."/Api/lib/alipay_notify.class.php");
		//计算得出通知验证结果
		$alipayNotify = new AlipayNotify($alipay_config);
		$verify_result = $alipayNotify->verifyNotify();
		if($verify_result) {//验证成功
			/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			//请在这里加上商户的业务逻辑程序代	
			//——请根据您的业务逻辑来编写程序（以下代码仅作参考）——	
			//获取支付宝的通知返回参数，可参考技术文档中服务器异步通知参数列表	
			//批次号
			$batch_no = $_POST['batch_no'];
			//批量退款数据中转账成功的笔数
			$success_num = $_POST['success_num'];
			//批量退款数据中的详细信息
			$result_details = $_POST['result_details'];
			//判断是否在商户网站中已经做过了这次通知返回的处理
			//如果没有做过处理，那么执行商户的业务程序
			//如果有做过处理，那么不执行商户的业务程序        
			echo "success";		//请不要修改或删除
			//处理成功接收到返回值后进行数据库数据更新,操作的表为“t_service_order”和“v1_order_status”中的状态进行更新
			$detailsArr=explode("^",$result_details);//拆分返回的数据集
			$tradeNo=$detailsArr[0];//取得tradeNo,便于后期的数据处理
			if($success_num != 0 && $result_details != ''){
				$Alipay=new AlipayModel();
				$sql_service="slect OrderNumber from v1_order_status where `tradeNo` = '".$tradeNo."' ";//取出当前订单的order_id
				$result=$Alipay->orderSelect($sql_service);//返回查询到的OrderNumber
				$orderId=$result[0][1];//去除OrderNumber并赋值给$orderId
				$sql="update t_service_order set `is_deal` ='2' and `deal_remark` = '退款成功！' where `order_id` = '".$orderId."' ";//更新表t_service_order中的状态数据
				$Alipay->orderUpdate($sql);
				$sql_order="update v1_order_status set `status` = '3' where `tradeNo` = '".$tradeNo."' ";//更新表v1_order_status中的状态数据
				$Alipay->orderUpdate($sql_order);				
			}else{
				$Alipay=new AlipayModel();
				$sql_service="slect OrderNumber from v1_order_status where `tradeNo` = '".$tradeNo."' ";//取出当前订单的order_id
				$result=$Alipay->orderSelect($sql_service);//返回查询到的OrderNumber
				$orderId=$result[0][1];//去除OrderNumber并赋值给$orderId
				$sql="update t_service_order set `is_deal` ='3' and `deal_remark` = '退款失败！' where `order_id` = '".$orderId."' ";//更新表t_service_order中的状态数据
				$Alipay->orderUpdate($sql);
				$sql_order="update v1_order_status set `status` = '15' where `tradeNo` = '".$tradeNo."' ";//更新表v1_order_status中的状态数据
				$Alipay->orderUpdate($sql_order);								
			}			
			//调试用，写文本函数记录程序运行情况是否正常
			//logResult("这里写入想要调试的代码变量值，或其他运行的结果记录");
			//——请根据您的业务逻辑来编写程序（以上代码仅作参考）——	
			/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		}else {
			//验证失败
			echo "fail";
			//调试用，写文本函数记录程序运行情况是否正常
			//logResult("这里写入想要调试的代码变量值，或其他运行的结果记录");
		}
		
	} 
}
?>